perm filename SPRINT.FAI[M11,LCS] blob sn#406187 filedate 1978-12-22 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		TITLE SPRINT 
C00006 ENDMK
CāŠ—;
	TITLE SPRINT 
	INTERNAL RNDINT,RAND 	;PARAM
	EXTERNAL .COMM.,C,P,PL,FILES.	    ;WRITING ON DSK (DEV.1 ONLY!)

;FORTRAN CALLABLE RANDOM NUMBER GENERATOR
;
;USE    CALL RNDINT   TO INITIALIZE THE GENERATOR
;                     (THE GENERATOR IS LOADED INITIALIZED)
;USE    RAND(XL,XH)   AS A FUNCTION TO RETURN THE NEXT 
;                     RANDOM NUMBER BETWEEN XL AND XH
;                     (XL,XH ARE FLOATING POINT,RAND RETURNS
;		      FLOATING POINT)
;
RNDINT:	0
	MOVE 0,[756132257563]
	MOVEM 0,R1
	ADDI 0,2
	MOVEM 0,R2
	JRA 16,0(16)
R1:	756132257563
R2:	756132257565

RAND:	0
	MOVEM 1,TEMP
	MOVE 0,@0(16)
	MOVE 1,@1(16)
	FSBR 1,0
	MOVEM 0,LLIM#
	MOVE 0,R1
	ADD 0,R2
	EXCH 0,R2
	MOVEM 0,R1
	LSH 0,-11
	FSC 0,200
	FMP 0,1
	FAD 0,LLIM
	MOVE 1,TEMP
	JRA 16,2(16)
TEMP:	0


;C	FUNCTION PARAM(X,K)
;C	COMMON J,L  /P/P(1) /PL/PL(1) /C/T,NWZZ,IT3,T6,NW,TDUR,A,
;C	1 T2,T4,BY,KODE,NPAR,LP,TBG,AC,NPA,BX,IDF,PM,NM,PAR,PX2
;;PARAM:	0	;C	K=0
;;	SETZ  2,
; IF K IS NOT ZERO UPON RETURN, THEN WE'VE FOUND INFO IN OTHER PARAM.
;;	MOVE 0,@(16)	;C	PARAM=X
;;	CAMG 0,[-9999.0] ;CC	IF(X.GT.-9999.0)RETURN
;;	CAMG 0,[-10000.0]  ;CC	IF(X.LE.-10000.0)RETURN
;;	JRST PAR2   	;GO TO PAR2
;;	MOVN  2,0
;;	FADR 2,[-9999.0]  ;CC	K=-(X+9999.0)*100.+.1	
;;	FMPR 2,[100.0]
;;	FADR 2,[0.1]	;FOR ROUND-OFF
;;	KIFIX 2,2
;;	MOVE 0,P-1(2)	;CC	PARAM=P(K)   ;AC 0 = PARAM
; GET DATA FROM PARAM K
;;	MOVE 1,PL-1(2)	;CC	PM=PL(K)
;;	MOVEM 1,C+=18
;;	MOVE 1,.COMM.+1	;CC	IF(L.NE.2)RETURN  ;;L=LPAR (CURRENT PARAM#)
;;	CAIE 1,2	;C L=CALLING PARAM NUM., K=PARAM REFERRED TO.
;;	JRST PAR2	;GO TO PAR2
;;	CAIN 2,2	;CC	IF(K.EQ.2)PARAM=PX2
;;	MOVE 0,C+=21;MUST USE 'UNPROCESSED' FORM OF P2 (I.E. NO 'TEMPO' CHANGES)
;;PAR2:	MOVEM 2,@1(16)	;SEND BACK VALUE OF K
;;	JRA 16,2(16)  ;CC	END
	END